/*
This file is part of Docking@Home.
http://docking.gcl.cis.udel.edu
Copyright (C) 2009 University of Delaware

Docking@Home is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Docking@Home is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Docking@Home.  If not, see <http://www.gnu.org/licenses/>.
*/
/*
	Filename: OBJModel.h
	Description: Handles all the desired functionality required
		from an OBJ Model
	Revision History: 
		Created - 01/25/08
	Author: Robert Keller (01/25/08 -> Current)
*/

#ifndef _OBJModel_h
#define _OBJModel_h

#include "OBJVertex.h"

#include <vector>

using std::vector;

#define OBJ_MAX_PATH_LENGTH 256

class OBJModel
{
public:

	// Constructor / Destructor
	OBJModel ();
	~OBJModel ();	

	// Loading Model Functions
	void loadModel (char objFilename[OBJ_MAX_PATH_LENGTH]);

private:

	// Private Loading Model Functions
	void generateNormals ();

	// Clean Model (remove old data)
	void clean ();

	vector<OBJVertex> vertices;
	
};

#endif _OBJModel_h